package cn.jasonone.jame.basic;

import javafx.scene.canvas.GraphicsContext;

import java.util.Comparator;

/**
 * 绘制接口
 */
public interface Draw extends Comparable<Draw> {
    /**
     * 得到当前所在层,0为最底层
     *
     * @return 层数
     */
    int getFloor();

    /**
     * 绘制时调用
     *
     * @param gc 画笔
     */
    void draw(GraphicsContext gc);

    /**
     * 每次更新画面时调用
     */
    void update();

    /**
     * 针对绘制对象进行层排序
     *
     * @param o 待比较对象
     * @return 排序结果
     */
    @Override
    default int compareTo(Draw o) {
        return this.getFloor() > o.getFloor() ? 1 : -1;
    }

}
